<?php
class IdiomasController extends AppController
{
	
	public $name = 'Idiomas';
	private $urlPortal;

	public function __construct()
	{
		parent::__construct();
		$this->urlPortal = Configure::read( 'cms.urlPortal' );
	}
	
	private function recursiveDelete($str){
        if(is_file($str)){
            return @unlink($str);
        }
        elseif(is_dir($str)){
            $scan = glob(rtrim($str,'/').'/*');
            foreach($scan as $index=>$path){
                $this->recursiveDelete($path);
            }
            return @rmdir($str);
        }
    }

	public function index()
	{
		$this->verificaLogado();
		
		$dadosIdiomas = $this->Idioma->find( 'all' );
		
		$this->set( "urlPortal", $this->urlPortal );
		$this->set( "dadosIdiomas", $dadosIdiomas );
	
	}

	public function adicionar()
	{
		$this->verificaLogado();
		if ( !empty( $this->data ) ) {

			if ( $this->Idioma->save( $this->data ) ) {
				$this->registraLogs( null, 'CRIOU IDIOMA: ' . $this->data[ 'Idioma' ][ 'NOME' ] );
				$this->Session->setFlash( 'Idioma salvo com sucesso!' );
				
				// Cria as pastas tanto no portal quanto no CMS
				$caminhoPortal = Configure::read( 'cms.caminhoPortal' ) . $this->data['Idioma']['ABREVIACAO'];
				$caminhoCMS = VIEWS . 'elementos' . DS . $this->data['Idioma']['ABREVIACAO'];
				
				if ( !is_dir($caminhoCMS) ) {
					mkdir ($caminhoCMS, 0755);
					chmod ($caminhoCMS, 0755);
				}
				
				if ( !is_dir($caminhoPortal) ) {
					mkdir ($caminhoPortal, 0755);
					chmod ($caminhoPortal, 0755);
				}
				
				// Fim de Cria as pastas tanto no portal quanto no CMS

				$this->redirect( array(
					'action' => 'index'
				) );
			}
		} else
			$this->redirect( array(
				'action' => 'index'
			) );
	
	}

	public function excluir()
	{
		$this->verificaLogado();

		$arrayPostIdioma = explode(':', $this->data[ 'Idioma' ][ 'CD_IDIOMA' ][ 0 ]);

		if ( !empty( $this->data ) ) {
			if ( $this->Idioma->deleteAll( 'WHERE CD_IDIOMA = ' . $arrayPostIdioma[0] ) ) {

				$this->registraLogs( null, 'DELETOU IDIOMA: ' . $arrayPostIdioma[1] );
				$this->Session->setFlash( 'Idioma apagado com sucesso!' );
				
				// Apaga as pastas e arquivos do Idioma
				// tanto no portal quanto no CMS
				$caminhoCMS = VIEWS . 'elementos' . DS . $arrayPostIdioma[2];
				$this->recursiveDelete($caminhoCMS);
				
				$caminhoPortal = Configure::read( 'cms.caminhoPortal' ) . $arrayPostIdioma[2];
				$this->recursiveDelete($caminhoPortal);
				// Fim de Apaga as pastas e arquivos do Idioma

				$this->redirect( array(
					'action' => 'index'
				) );
			}
		} else
			$this->redirect( array(
				'action' => 'index'
			) );
	
	}

	public function editar()
	{
		$this->verificaLogado();
		
		if ( !empty( $this->data ) ) {
			$dadosIdiomas = $this->Idioma->find( 'all', array(
				'conditions' => array(
					'Idioma.CD_IDIOMA' => $this->data[ 'Idioma' ][ 'CD_IDIOMA' ][ 0 ]
				)
			) );
			$this->set( 'dadosIdiomas', $dadosIdiomas );
		} else
			$this->redirect( array(
				'action' => 'index'
			) );
	}

	public function salvando_alteracao()
	{
		$this->verificaLogado();
		
		if ( !empty( $this->data ) ) {
			$this->Idioma->cd_idioma = $this->data[ "Idioma" ][ "CD_IDIOMA" ];
			if ( $this->Idioma->save( $this->data ) ) {
				$this->registraLogs( null, 'ATUALIZOU IDIOMA: ' . $this->data[ 'Idioma' ][ 'NOME' ] );
				
				$this->Session->setFlash( 'Idioma alterado com sucesso!' );
				
				// Renomeia as pastas tanto no portal quanto no CMS
				$caminhoPortal = Configure::read( 'cms.caminhoPortal' ); // . $this->data['Idioma']['ABREVIACAO'];
				$caminhoCMS = VIEWS . 'elementos' . DS; //. $this->data['Idioma']['ABREVIACAO'];
				
				rename($caminhoPortal . $this->data['Idioma']['ABREVIACAO_OLD'], $caminhoPortal . $this->data['Idioma']['ABREVIACAO']);
				rename($caminhoCMS . $this->data['Idioma']['ABREVIACAO_OLD'], $caminhoCMS . $this->data['Idioma']['ABREVIACAO']);

				$this->redirect( array(
					'action' => 'index'
				) );
			}
		} else
			$this->redirect( array(
				'action' => 'editar'
			) );
	
	}
}

?>